package com.artqiyi.dollmachine.presenter.base;


import com.artqiyi.dollmachine.model.entity.AssignBean;
import com.artqiyi.dollmachine.model.entity.CoinBuyBean;
import com.artqiyi.dollmachine.model.entity.CoinRecordBean;
import com.artqiyi.dollmachine.model.entity.CoinTotalBean;
import com.artqiyi.dollmachine.model.entity.ConfigBean;
import com.artqiyi.dollmachine.model.entity.DollBean;
import com.artqiyi.dollmachine.model.entity.DollDetailBean;
import com.artqiyi.dollmachine.model.entity.GameRecordBean;
import com.artqiyi.dollmachine.model.entity.PaymentBean;
import com.artqiyi.dollmachine.model.entity.TipBean;
import com.artqiyi.dollmachine.model.entity.UserInfoBean;
import com.artqiyi.dollmachine.model.entity.WXPaymentBean;
import com.artqiyi.dollmachine.utils.respone.DollDetailRespone;
import com.artqiyi.dollmachine.utils.respone.GameResultRespone;

import java.util.List;

/**
 * @describption 所有P层与V层传递数据的Callback的统一集合类
 */

public interface PresenterCallbackCollection {

    public interface MainActivityCallBack extends BasePresenterCallback {

        void onGetDollListSuccess(List<DollBean> dollBeanList);

        void onGetDollListFail(String msg);

        void onGetBannerSuccess(List<String> urls);

        void onGetBannerFail(String msg);

        void onConfigSuccess(ConfigBean bean);

        void onConfigFail(String msg);
    }

    public interface DollFragmentCallBack extends BasePresenterCallback {

        void onGetDollListSuccess(List<DollBean> dollBeanList);

        void onGetDollListFail(String msg);

        void onGetBannerSuccess(List<String> urls);

        void onGetBannerFail(String msg);

        void onTipListSuccess(List<TipBean> beans);

        void onTipListFail(String msg);
    }

    public interface PayFragmentCallBack extends BasePresenterCallback {
        void onCoinBuySuccess(List<CoinBuyBean> beans);

        void onCoinBuyFail(String msg);
    }

    public interface DollOperateActivityCallBack extends BasePresenterCallback {

        void onGetDollDetailSuccess(DollDetailBean bean);

        void onGetDollDetailFail(String msg);

        void onStartDollGameSuccess(GameResultRespone gameResultRespone);

        void onStartDollGameFail(String msg);

        void onCoinBuySuccess(List<CoinBuyBean> beans);

        void onCoinBuyFail(String msg);

        void onOperateSuccess(int action);

        void onOperateFail(String msg, int action);

    }

    interface OperateCatchRecordFragmentCallback extends BasePresenterCallback {

        void onGetMineCatchRecordSuccess(List<GameRecordBean> beans);

        void onGetMineCatchRecordFail(String msg);
    }

    interface MineCatchRecordActivity extends BasePresenterCallback {

        void onGetMineCatchRecordSuccess(List<GameRecordBean> beans);

        void onGetMineCatchRecordFail(String msg);
    }

    interface MinePayRecordActivityCallback extends BasePresenterCallback {

        void onGetMinePayRecordSuccess(List<CoinRecordBean> beans);

        void onGetMinePayRecordFail(String msg);

        void onCoinBuySuccess(List<CoinBuyBean> beans);

        void onCoinBuyFail(String msg);

        void onGetCoinTotalSuccess(CoinTotalBean bean);

        void onGetCoinTotalFail(String msg);
    }

    interface MineDollActivity extends BasePresenterCallback {

        void onGetMineDollSuccess(List<GameRecordBean> beans);

        void onGetMineDollFail(String msg);
    }

    interface MineDollCoinActivityCallback extends BasePresenterCallback {

        void onCoinBuySuccess(List<CoinBuyBean> beans);

        void onCoinBuyFail(String msg);

        void onGetMineDollCoinSuccess(List<CoinRecordBean> beans);

        void onGetMineDollCoinFail(String msg);
    }

    interface GameRecordsListActivity extends BasePresenterCallback {

        void onGetGameRecordsListSuccess(List<GameRecordBean> beans);

        void onGetGameRecordsListFail(String msg);
    }

    interface LoginActivity extends BasePresenterCallback {

        void onGetUserInfoSuccess(UserInfoBean bean);

        void onGetTokenInvalid();

        void onGetUserInfoFail(String msg);

        void onConfigSuccess(ConfigBean bean);

        void onConfigFail(String msg);
    }

}
